import java.util.Vector;


public abstract class Cuenta {

	protected int numero;
	protected float saldo;
	private static int proximoNumero;
	protected Cliente cliente;
	protected Vector <Movimiento> movimientos; 
	
	private Vector <MovimientoView> movimientosView;
	
	public static int getProximoNumero(){
		return ++proximoNumero;
	}

	public Cuenta(Cliente cliente) {
		super();
		this.cliente = cliente;
		numero= getProximoNumero();
		movimientos = new Vector<Movimiento>();
		movimientosView = new Vector<MovimientoView>();
		
	}

	public float getSaldo() {
		return saldo;
	}

	public void setSaldo(float saldo) {
		this.saldo = saldo;
	}
	
	
	public int getNumero() {
		return numero;
	}

	public Cliente getCliente() {
		return cliente;
	}
	
	public void depositar(float monto){
		Movimiento m;
		m = new Movimiento("Depositar", monto);
		saldo = saldo + monto;
		movimientos.add(m);
		
	}
	
	public CuentaView getView(){
		CuentaView cv = new CuentaView(cliente.getNombre(), numero, saldo);
		return cv;
	}
	
	
	public Vector getMovimientosView(){
		
		for (int i= 0; i < movimientos.size();i++){
			MovimientoView mv = movimientos.elementAt(i).getMovimientoView(); 
			movimientosView.add (mv);
		}
		return movimientosView;
	}
	
	
	public abstract boolean extraer (float monto);
		
	
}
